radionica_3Dgrafika

automatic_names(True) 
        
f(x,y)=sin(pi*(x^2+y^2))/2 
        

plot3d

plot3d(f(x,y),(x,-1,1),(y,-1,1), color='green', opacity=0.8,figsize=4,aspect_ratio=[1,1,1],plot_points=[30,30]) 
        
plot3d(f(x,y),(x,-1,1),(y,-1,1),adaptive=True, color=['red','yellow'],frame=False) 
        
cmsel = [colormaps['cool'](i) for i in sxrange(0,1,0.05)] p = plot3d(f(x,y),(x,-1,1),(y,-1,1),adaptive=True,color=cmsel) p.show(aspect_ratio=(1,1,1), figsize=[7,3]) 
        
colormaps 
        

contour_plot

contour_plot(f(x,y),(x,-1,1),(y,-1,1)) 
        
contour_plot(f(x,y),(x,-1,1),(y,-1,1),fill=False,plot_points=150,contours=20) 
        
contour_plot(f(x,y),(x,-1,1),(y,-1,1),fill=False,plot_points=150,contours=[0.1,0.2,0.5,0.8,1]) 
        
contour_plot(f(x,y),(x,-1,1),(y,-1,1),cmap='hot',linewidths=3,linestyles='dashed',colorbar=True) 
        

density_plot

density_plot(f(x,y),(x,-1,1),(y,-1,1)) 
        
density_plot(f(x,y),(x,-1,1),(y,-1,1),cmap='hot',axes=False) 
        
density_plot(f(x,y),(x,-1,1),(y,-1,1),cmap='hot',axes=False,dpi=20) 
        
density_plot(f(x,y),(x,-1,1),(y,-1,1),cmap='hot',interpolation='hermite') 
        

parametric_plot3d

parametric_plot3d((cos(u),sin(u),0.5*u),(u,0,4*pi),thickness=3,color='red') 
        
parametric_plot3d([sin(u),sin(v),sin(u+v)],(u,0,2*pi),(v,0,2*pi)) 
        
parametric_plot3d((cos(u), sin(u) + cos(v), sin(v)), (u, 0, pi), (v, 0, pi), opacity=0.1, plot_points=[30,30], boundary_style={"color": "black", "thickness": 3}) 
        
fx = u*v fy = u fz = v^2 parametric_plot3d([fx, fy, fz], (u, -1, 1), (v, -1, 1), frame=False, color="yellow") 
        
fx = cos(u)*cos(2*v) fy = sin(u)*cos(2*v) fz = sin(v) parametric_plot3d([fx, fy, fz], (u, 0, 2*pi), (v, 0, pi), frame=False, color="green") 
        
parametric_plot3d(vector((0,0,1))+u*vector((cos(v),sin(v),-1)), (u, 0, 2), (v, 0, 2*pi), frame=False, color="yellow") 
        

revolution_plot3d

revolution_plot3d(u^2,(u,0,2),(0,3/2*pi),show_curve=True,print_vector=True,opacity=0.7).show(aspect_ratio=(1,1,1)) 
        
revolution_plot3d(u^2,(u,0,2),(0,3/2*pi),show_curve=True,parallel_axis='x',print_vector=True,opacity=0.7).show(aspect_ratio=(1,1,1)) 
        
sl1=revolution_plot3d(u^2,(u,0,2),show_curve=True,axis=(0,0),color='green') sl2=revolution_plot3d(u^2,(u,0,2),show_curve=True,axis=(0,2),color='yellow') (sl1+sl2).show(aspect_ratio=(1,1,1)) 
        
curve=(u,cos(4*u),u^2) revolution_plot3d(curve,(u,0,2),show_curve=True,parallel_axis='z',axis=(1,0.2),opacity=0.5).show(aspect_ratio=(1,1,1)) 
        
implicit_plot3d(x^2+y^2-z^2==0.8,(x,-2,2),(y,-2,2),(z,-1.8,1.8),plot_points=100,contour=0) 
        
implicit_plot3d(-(cos(x) + cos(y) + cos(z)), (x, -4, 4), (y, -4, 4), (z, -4, 4),plot_points=100) 
        
implicit_plot3d(x^2 + y^2 + z^2, (x, -2, 2), (y, -2, 2), (z, -2, 2), plot_points=(10, 40, 40), contour=4) 
        
implicit_plot3d((x^2 + y^2 + z^2), (x, -2, 2), (y, -2, 2), (z, -2, 2), plot_points=60, contour=[1,3,5], region=lambda x,y,z: x<=0.2 or y>=0.2 or z<=0.2) 
        
implicit_plot3d((x^2 + y^2 + z^2), (x, -2, 2), (y, -2, 2), (z, -2, 2), plot_points=60, contour=[1], region=lambda x,y,z: x<=0.2 or y>=0.2 or z<=0.2) 
        
implicit_plot3d((x^2 + y^2 + z^2), (x, -2, 2), (y, -2, 2), (z, -2, 2), plot_points=100, contour=[1], region=lambda x,y,z: z>0.4 or z<-0.4) 
        
implicit_plot3d(x^2 + y^2 + z^2, (x, -1.5, 1.5), (y, -1.5, 1.5), (z, -1.5, 1.5),plot_points=150,color='yellow',opacity=0.3, contour=[1], region=lambda x,y,z: x+y+z<1) 
        
implicit_plot3d((x^2 + y^2 - 1) * ( x^2 + z^2 - 1) - 1, (x, -3, 3), (y, -3, 3), (z, -3, 3)) 
        

list_plot3d

M=matrix(RDF, 6, [sin(i^2 + j^2) for i in [0,pi/5,..,pi] for j in [0,pi/5,..,pi]]);M 
        
list_plot3d(M, texture='yellow', frame_aspect_ratio=[1,1,1/3],interpolatio_type='nn') 
        
list_plot3d(M, texture='yellow', frame_aspect_ratio=[1,1,1/3],interpolatio_type='linear') 
        
list_plot3d(M, texture='yellow', frame_aspect_ratio=[1,1,1/3],interpolation_type='spline') 
        

spherical_plot3d

spherical_plot3d(sin(v)^2*cos(v)^2,(u,0,2*pi),(v,0,pi)) 
        
spherical_plot3d(sin(u)^2*cos(u)^2+0.5,(u,0,2*pi),(v,0,pi)) 
        

cylindrical_plot3d

z=cosρ

T=Cylindrical('height',['radius','azimuth']) 
        
plot3d(cos(ro),(ro,0,10),(fi,0,2*pi),transformation=T).show(aspect_ratio=[1,1,3]) 
        
plot3d(cos(ro),(ro,0,10),(fi,0,2*pi),transformation=T).show(aspect_ratio=[1,1,3],viewer='canvas3d') 
        
plot3d(cos(ro),(ro,0,10),(fi,0,2*pi),transformation=T).show(aspect_ratio=[1,1,3],viewer='tachyon') 
        
cylindrical_plot3d(cos(ro),(ro,0,10),(fi,0,2*pi)) 
        

plot_vector_field3d

plot_vector_field3d((x*cos(z),-y*cos(z),sin(z)), (x,0,pi), (y,0,pi), (z,0,pi),plot_points=[8,8,6],colors='hot',aspect_ratio=[1,1,1]) 
        

spremanje slike

plot3d(f(x,y),(x,-1,1),(y,-1,1),aspect_ratio=[1,1,1],viewer='tachyon') 
        
slika=plot3d(f(x,y),(x,-1,1),(y,-1,1),adaptive=True, color=['red','yellow'],frame=False);slika 
        
slika2=slika.rotateZ(pi/3).rotateX(0.2);slika2.show(aspect_ratio=[1,1,1],figsize=[8,7],zoom=1.2) 
        
slika2.save('proba.png',figsize=[8,8],aspect_ratio=[1,1,1],zoom=1.2) 
        

kompliciranije slike

graf=implicit_plot3d(x^2*z+y^2*z-9==0,(x,-5,5),(y,-5,5),(z,-2,6)) tocka=point3d((3,0,1),size=20,color='yellow') pravac=parametric_plot3d([t+3,t,t+1],(t,-3,2.5),color='cyan',thickness=5) rav=parametric_plot3d([3+3*u,v,1-2*u],(u,-2,1),(v,-5,5),color='sandybrown',opacity=0.6) nor=parametric_plot3d([3+2*t,0,1+3*t],(t,-1.3,1.3),color='red',thickness=5) pic1=graf+tocka+pravac+rav+nor+text3d("X",(0.1,-5,-5))+text3d("Y",(6,0.1,-5))+text3d("Z",(-5,-5,3)) pic1.show(aspect_ratio=[1,1,1],figsize=(6,6)) 
        
pic1.show(aspect_ratio=[1,1,1],figsize=(8,8),zoom=1.2) 
        

ruže

rose(n,d,p,fi,theta)=(1/2*cos(fi)*(cos(n/d*fi)+sqrt(p^2+cos(n/d*fi)^2)*sin(theta)),1/2*sin(fi)*(cos(n/d*fi)+sqrt(p^2+cos(n/d*fi)^2)*sin(theta)),1/2*(p+sqrt(p^2+cos(n/d*fi)^2)*cos(theta))) 
        
parametric_plot3d(rose(4,1,0,fi,theta),(fi,0,2*pi),(theta,0,2*pi),aspect_ratio=[1,1,1],plot_points=100) 
        
parametric_plot3d(rose(5,2,1,fi,theta),(fi,0,4*pi),(theta,0,2*pi),aspect_ratio=[1,1,1],plot_points=150,color='orange') 
        
parametric_plot3d(rose(2,5,1,fi,theta),(fi,0,10*pi),(theta,0,2*pi),aspect_ratio=[1,1,1],plot_points=150,color='orange') 
        
def implicitni_rose(n,d,p,x,y,z): if (n*d)%2==1: s=1 else: s=2 ds=0 for k in xrange(floor(d/2)+1): for j in xrange(k+1): ds+=(-1)^(k+j)*binomial(d,2*k)*binomial(k,j)*(x^2+y^2+z^2-p*z)^(d-2*(k-j))*(x^2+y^2)^(k-j) suma=0 for i in xrange(floor(n/2)+1): suma+=(-1)^i*binomial(n,2*i)*x^(n-2*i)*y^(2*i) if n>d: jednadzba=(x^2+y^2)^(s*(n-d)/2)*ds^s-suma^s elif n<d: jednadzba=ds^s-(x^2+y^2)^(s*(d-n)/2)*suma^s return jednadzba 
        
implicitni_rose(4,1,0,x,y,z) 
        
implicitni_rose(5,2,1,x,y,z) 
        
implicitni_rose(2,5,1,x,y,z) 
        
implicit_plot3d(implicitni_rose(4,1,0,x,y,z),(x,-1,1),(y,-1,1),(z,-0.5,0.2),plot_points=100,aspect_ratio=[1,1,1]) 
        
implicit_plot3d(implicitni_rose(5,2,1,x,y,z),(x,-1.5,1.5),(y,-1.5,1.5),(z,-0.5,0.2),plot_points=100,aspect_ratio=[1,1,1]) 
        
implicitni_rose(5,2,1,x,y,-0.1) 
        
implicit_plot(implicitni_rose(5,2,1,x,y,-0.1),(x,-2,2),(y,-2,2))+implicit_plot(implicitni_rose(5,2,1,x,y,-0.06),(x,-2,2),(y,-2,2),color='red')+implicit_plot(implicitni_rose(5,2,1,x,y,0.2),(x,-2,2),(y,-2,2),color='green')